]> shimmer.witbreuk.eu Git - UltimateKEYS.git/blobdiff - autohotkey/UltimateKEYS (for AutoHotkey v1.1).ahk
Add files via upload
[UltimateKEYS.git] / autohotkey / UltimateKEYS (for AutoHotkey v1.1).ahk
index d6aae51435284c67547c814864232b0fe1425f7a..8e74800cca72ea970a789a14bc07c155727df1a7 100644 (file)
@@ -1,6 +1,6 @@
 #requires AutoHotkey v1.1
 
 #requires AutoHotkey v1.1
 
-; UltimateKEYS (for AutoHotkey v1.1).ahk - 2025-01-29
+; UltimateKEYS (for AutoHotkey v1.1).ahk - 2025-02-25
 
 ; Website :  https://pieter-degroote.github.io/UltimateKEYS/
 
 
 ; Website :  https://pieter-degroote.github.io/UltimateKEYS/
 
@@ -21,10 +21,12 @@ ListLines Off   ; omits recently executed lines from history (for privacy and se
 
 SendMode Input  ; optimizes for faster and more reliable input
 
 
 SendMode Input  ; optimizes for faster and more reliable input
 
+global gEndKeys := "{bs}{esc}"  ; ends dead key input on Backspace or Escape
+
 
 ; Compose Key Sequences (declaration)
 
 
 ; Compose Key Sequences (declaration)
 
-compose := ComObjCreate("Scripting.Dictionary")
+global compose := ComObjCreate("Scripting.Dictionary")
 
 
 ; Compose :  Acute Accent
 
 
 ; Compose :  Acute Accent
@@ -261,8 +263,8 @@ compose.item[".g"] := "{u+0121}"  ; (ġ) g with dot above
 compose.item[".G"] := "{u+0120}"  ; (Ġ) G with dot above
 compose.item[".h"] := "{u+1e23}"  ; (ḣ) h with dot above
 compose.item[".H"] := "{u+1e22}"  ; (Ḣ) H with dot above
 compose.item[".G"] := "{u+0120}"  ; (Ġ) G with dot above
 compose.item[".h"] := "{u+1e23}"  ; (ḣ) h with dot above
 compose.item[".H"] := "{u+1e22}"  ; (Ḣ) H with dot above
-compose.item[".i"] := "{u+0131}"  ; (ı) dotless i (Turkish, Azerbaijani)
-compose.item[".I"] := "{u+0130}"  ; (İ) I with dot above (Turkish, Azerbaijani)
+compose.item[".i"] := "{u+0131}"  ; (ı) dotless i
+compose.item[".I"] := "{u+0130}"  ; (İ) I with dot above
 compose.item[".j"] := "{u+0237}"  ; (ȷ) dotless j
 compose.item[".l"] := "{u+0140}"  ; (ŀ) l with middle dot
 compose.item[".L"] := "{u+013f}"  ; (Ŀ) L with middle dot
 compose.item[".j"] := "{u+0237}"  ; (ȷ) dotless j
 compose.item[".l"] := "{u+0140}"  ; (ŀ) l with middle dot
 compose.item[".L"] := "{u+013f}"  ; (Ŀ) L with middle dot
@@ -274,7 +276,6 @@ compose.item[".o"] := "{u+022f}"  ; (ȯ) o with dot above
 compose.item[".O"] := "{u+022e}"  ; (Ȯ) O with dot above
 compose.item[".p"] := "{u+1e57}"  ; (ṗ) p with dot above
 compose.item[".P"] := "{u+1e56}"  ; (Ṗ) P with dot above
 compose.item[".O"] := "{u+022e}"  ; (Ȯ) O with dot above
 compose.item[".p"] := "{u+1e57}"  ; (ṗ) p with dot above
 compose.item[".P"] := "{u+1e56}"  ; (Ṗ) P with dot above
-compose.item[".q"] := "{u+1e9b}"  ; (ẛ) long s with dot above
 compose.item[".r"] := "{u+1e59}"  ; (ṙ) r with dot above
 compose.item[".R"] := "{u+1e58}"  ; (Ṙ) R with dot above
 compose.item[".s"] := "{u+1e61}"  ; (ṡ) s with dot above
 compose.item[".r"] := "{u+1e59}"  ; (ṙ) r with dot above
 compose.item[".R"] := "{u+1e58}"  ; (Ṙ) R with dot above
 compose.item[".s"] := "{u+1e61}"  ; (ṡ) s with dot above
@@ -313,10 +314,10 @@ compose.item["-d"] := "{u+0111}"  ; (đ) d with stroke
 compose.item["-D"] := "{u+0110}"  ; (Đ) D with stroke
 compose.item["-e"] := "{u+0113}"  ; (ē) e with macron
 compose.item["-E"] := "{u+0112}"  ; (Ē) E with macron
 compose.item["-D"] := "{u+0110}"  ; (Đ) D with stroke
 compose.item["-e"] := "{u+0113}"  ; (ē) e with macron
 compose.item["-E"] := "{u+0112}"  ; (Ē) E with macron
-compose.item["-g"] := "{u+01e5}"  ; (ǥ) g with stroke (Skolt Sami)
-compose.item["-G"] := "{u+01e4}"  ; (Ǥ) G with stroke (Skolt Sami)
-compose.item["-h"] := "{u+0127}"  ; (ħ) h with stroke (Maltese)
-compose.item["-H"] := "{u+0126}"  ; (Ħ) H with stroke (Maltese)
+compose.item["-g"] := "{u+01e5}"  ; (ǥ) g with stroke
+compose.item["-G"] := "{u+01e4}"  ; (Ǥ) G with stroke
+compose.item["-h"] := "{u+0127}"  ; (ħ) h with stroke
+compose.item["-H"] := "{u+0126}"  ; (Ħ) H with stroke
 compose.item["-i"] := "{u+012b}"  ; (ī) i with macron
 compose.item["-I"] := "{u+012a}"  ; (Ī) I with macron
 compose.item["-j"] := "{u+0249}"  ; (ɉ) j with stroke
 compose.item["-i"] := "{u+012b}"  ; (ī) i with macron
 compose.item["-I"] := "{u+012a}"  ; (Ī) I with macron
 compose.item["-j"] := "{u+0249}"  ; (ɉ) j with stroke
@@ -343,7 +344,6 @@ compose.item["-Z"] := "{u+01b5}"  ; (Ƶ) Z with stroke
 
 ; Compose :  Macron and Stroke (additional)
 
 
 ; Compose :  Macron and Stroke (additional)
 
-compose.item["_f"] := "{u+1e9d}"  ; (ẝ) long s with high stroke
 compose.item["_g"] := "{u+1e21}"  ; (ḡ) g with macron
 compose.item["_G"] := "{u+1e20}"  ; (Ḡ) G with macron
 compose.item["_i"] := "{u+0268}"  ; (ɨ) i with stroke
 compose.item["_g"] := "{u+1e21}"  ; (ḡ) g with macron
 compose.item["_G"] := "{u+1e20}"  ; (Ḡ) G with macron
 compose.item["_i"] := "{u+0268}"  ; (ɨ) i with stroke
@@ -395,24 +395,18 @@ compose.item["bd"] := "{u+0256}"  ; (ɖ) small letter d with tail
 compose.item["bD"] := "{u+0189}"  ; (Ɖ) capital letter African D
 compose.item["be"] := "{u+0115}"  ; (ĕ) e with breve
 compose.item["bE"] := "{u+0114}"  ; (Ĕ) E with breve
 compose.item["bD"] := "{u+0189}"  ; (Ɖ) capital letter African D
 compose.item["be"] := "{u+0115}"  ; (ĕ) e with breve
 compose.item["bE"] := "{u+0114}"  ; (Ĕ) E with breve
-compose.item["bf"] := "{u+0259}"  ; (ə) small letter schwa (Azerbaijani)
-compose.item["bF"] := "{u+018f}"  ; (Ə) capital letter schwa (Azerbaijani)
 compose.item["bg"] := "{u+011f}"  ; (ğ) g with breve
 compose.item["bG"] := "{u+011e}"  ; (Ğ) G with breve
 compose.item["bi"] := "{u+012d}"  ; (ĭ) i with breve
 compose.item["bI"] := "{u+012c}"  ; (Ĭ) I with breve
 compose.item["bo"] := "{u+014f}"  ; (ŏ) o with breve
 compose.item["bO"] := "{u+014e}"  ; (Ŏ) O with breve
 compose.item["bg"] := "{u+011f}"  ; (ğ) g with breve
 compose.item["bG"] := "{u+011e}"  ; (Ğ) G with breve
 compose.item["bi"] := "{u+012d}"  ; (ĭ) i with breve
 compose.item["bI"] := "{u+012c}"  ; (Ĭ) I with breve
 compose.item["bo"] := "{u+014f}"  ; (ŏ) o with breve
 compose.item["bO"] := "{u+014e}"  ; (Ŏ) O with breve
-compose.item["bs"] := "{u+0219}"  ; (ș) s with comma below (Romanian)
-compose.item["bS"] := "{u+0218}"  ; (Ș) S with comma below (Romanian)
-compose.item["bt"] := "{u+021b}"  ; (ț) t with comma below (Romanian)
-compose.item["bT"] := "{u+021a}"  ; (Ț) T with comma below (Romanian)
+compose.item["bs"] := "{u+0219}"  ; (ș) s with comma below
+compose.item["bS"] := "{u+0218}"  ; (Ș) S with comma below
+compose.item["bt"] := "{u+021b}"  ; (ț) t with comma below
+compose.item["bT"] := "{u+021a}"  ; (Ț) T with comma below
 compose.item["bu"] := "{u+016d}"  ; (ŭ) u with breve
 compose.item["bU"] := "{u+016c}"  ; (Ŭ) U with breve
 compose.item["bu"] := "{u+016d}"  ; (ŭ) u with breve
 compose.item["bU"] := "{u+016c}"  ; (Ŭ) U with breve
-compose.item["bw"] := "{u+01bf}"  ; (ƿ) small letter wynn
-compose.item["bW"] := "{u+01f7}"  ; (Ƿ) capital letter wynn
-compose.item["by"] := "{u+021d}"  ; (ȝ) small letter yogh
-compose.item["bY"] := "{u+021c}"  ; (Ȝ) capital letter yogh
 compose.item["b3"] := "{u+0292}"  ; (ʒ) small letter ezh
 compose.item["b#"] := "{u+01b7}"  ; (Ʒ) capital letter ezh
 
 compose.item["b3"] := "{u+0292}"  ; (ʒ) small letter ezh
 compose.item["b#"] := "{u+01b7}"  ; (Ʒ) capital letter ezh
 
@@ -489,23 +483,11 @@ compose.item["fr"] := "{u+027e}"  ; (ɾ) r with fishhook
 compose.item["ft"] := "{u+0288}"  ; (ʈ) t with retroflex hook
 compose.item["fT"] := "{u+01ae}"  ; (Ʈ) T with retroflex hook
 compose.item["fv"] := "{u+2c71}"  ; (ⱱ) v with right hook
 compose.item["ft"] := "{u+0288}"  ; (ʈ) t with retroflex hook
 compose.item["fT"] := "{u+01ae}"  ; (Ʈ) T with retroflex hook
 compose.item["fv"] := "{u+2c71}"  ; (ⱱ) v with right hook
+compose.item["fy"] := "{u+1eff}"  ; (ỿ) y with loop
+compose.item["fY"] := "{u+1efe}"  ; (Ỿ) Y with loop
 compose.item["fz"] := "{u+0290}"  ; (ʐ) z with retroflex hook
 
 
 compose.item["fz"] := "{u+0290}"  ; (ʐ) z with retroflex hook
 
 
-; Compose :  Swash Tail and Other Variations
-
-compose.item["tc"] := "{u+a793}"  ; (ꞓ) c with bar
-compose.item["tC"] := "{u+a792}"  ; (Ꞓ) C with bar
-compose.item["tf"] := "{u+a799}"  ; (ꞙ) f with stroke
-compose.item["tF"] := "{u+a798}"  ; (Ꞙ) F with stroke
-compose.item["tl"] := "{u+2c61}"  ; (ⱡ) l with double bar
-compose.item["tL"] := "{u+2c60}"  ; (Ⱡ) L with double bar
-compose.item["ts"] := "{u+023f}"  ; (ȿ) s with swash tail
-compose.item["tS"] := "{u+2c7e}"  ; (Ȿ) S with swash tail
-compose.item["tz"] := "{u+0240}"  ; (ɀ) z with swash tail
-compose.item["tZ"] := "{u+2c7f}"  ; (Ɀ) Z with swash tail
-
-
 ; Compose :  Latin Greek Letters and Variations
 
 compose.item["la"] := "{u+0251}"  ; (ɑ) Latin small letter alpha
 ; Compose :  Latin Greek Letters and Variations
 
 compose.item["la"] := "{u+0251}"  ; (ɑ) Latin small letter alpha
@@ -535,6 +517,10 @@ compose.item["ls"] := "{u+0283}"  ; (ʃ) Latin small letter esh
 compose.item["lS"] := "{u+01a9}"  ; (Ʃ) Latin capital letter esh
 compose.item["lu"] := "{u+028a}"  ; (ʊ) Latin small letter upsilon
 compose.item["lU"] := "{u+01b1}"  ; (Ʊ) Latin capital letter upsilon
 compose.item["lS"] := "{u+01a9}"  ; (Ʃ) Latin capital letter esh
 compose.item["lu"] := "{u+028a}"  ; (ʊ) Latin small letter upsilon
 compose.item["lU"] := "{u+01b1}"  ; (Ʊ) Latin capital letter upsilon
+compose.item["lw"] := "{u+01bf}"  ; (ƿ) small letter wynn
+compose.item["lW"] := "{u+01f7}"  ; (Ƿ) capital letter wynn
+compose.item["ly"] := "{u+021d}"  ; (ȝ) small letter yogh
+compose.item["lY"] := "{u+021c}"  ; (Ȝ) capital letter yogh
 compose.item["l8"] := "{u+0223}"  ; (ȣ) small letter ou
 compose.item["l*"] := "{u+0222}"  ; (Ȣ) capital letter OU
 compose.item["l7"] := "{u+0242}"  ; (ɂ) small letter glottal stop
 compose.item["l8"] := "{u+0223}"  ; (ȣ) small letter ou
 compose.item["l*"] := "{u+0222}"  ; (Ȣ) capital letter OU
 compose.item["l7"] := "{u+0242}"  ; (ɂ) small letter glottal stop
@@ -575,6 +561,20 @@ compose.item["rz"] := "{u+01b9}"  ; (ƹ) Latin small letter ezh reversed
 compose.item["rZ"] := "{u+01b8}"  ; (Ƹ) Latin capital letter ezh reversed
 
 
 compose.item["rZ"] := "{u+01b8}"  ; (Ƹ) Latin capital letter ezh reversed
 
 
+; Compose :  Swash Tail and Other Variations
+
+compose.item["tc"] := "{u+a793}"  ; (ꞓ) c with bar
+compose.item["tC"] := "{u+a792}"  ; (Ꞓ) C with bar
+compose.item["tf"] := "{u+a799}"  ; (ꞙ) f with stroke
+compose.item["tF"] := "{u+a798}"  ; (Ꞙ) F with stroke
+compose.item["tl"] := "{u+2c61}"  ; (ⱡ) l with double bar
+compose.item["tL"] := "{u+2c60}"  ; (Ⱡ) L with double bar
+compose.item["ts"] := "{u+023f}"  ; (ȿ) s with swash tail
+compose.item["tS"] := "{u+2c7e}"  ; (Ȿ) S with swash tail
+compose.item["tz"] := "{u+0240}"  ; (ɀ) z with swash tail
+compose.item["tZ"] := "{u+2c7f}"  ; (Ɀ) Z with swash tail
+
+
 ; Compose :  Currency Symbols
 
 compose.item["$a"] := "{u+058f}"  ; (֏) Armenian dram
 ; Compose :  Currency Symbols
 
 compose.item["$a"] := "{u+058f}"  ; (֏) Armenian dram
@@ -817,8 +817,6 @@ compose.item["q0"] := "{u+21d4}"  ; (⇔) left right double arrow
 ; Compose :  Various Symbols
 
 compose.item["sa"] := "{u+2100}"  ; (℀) account of
 ; Compose :  Various Symbols
 
 compose.item["sa"] := "{u+2100}"  ; (℀) account of
-compose.item["sb"] := "{u+203d}"  ; (‽) interrobang
-compose.item["sB"] := "{u+2e18}"  ; (⸘) inverted interrobang
 compose.item["sc"] := "{u+2105}"  ; (℅) care of
 compose.item["sd"] := "{u+22c4}"  ; (⋄) diamond operator
 compose.item["se"] := "{u+212e}"  ; (℮) estimated symbol
 compose.item["sc"] := "{u+2105}"  ; (℅) care of
 compose.item["sd"] := "{u+22c4}"  ; (⋄) diamond operator
 compose.item["se"] := "{u+212e}"  ; (℮) estimated symbol
@@ -919,6 +917,8 @@ compose.item["ae"] := "{u+00e6}"  ; (æ) letter ae
 compose.item["AE"] := "{u+00c6}"  ; (Æ) letter AE
 compose.item["dh"] := "{u+00f0}"  ; (ð) small letter eth
 compose.item["DH"] := "{u+00d0}"  ; (Ð) capital letter eth
 compose.item["AE"] := "{u+00c6}"  ; (Æ) letter AE
 compose.item["dh"] := "{u+00f0}"  ; (ð) small letter eth
 compose.item["DH"] := "{u+00d0}"  ; (Ð) capital letter eth
+compose.item["ee"] := "{u+0259}"  ; (ə) small letter schwa
+compose.item["EE"] := "{u+018f}"  ; (Ə) capital letter schwa
 compose.item["fs"] := "{u+017f}"  ; (ſ) small letter long s
 compose.item["ij"] := "{u+0133}"  ; (ij) ligature ij
 compose.item["IJ"] := "{u+0132}"  ; (IJ) ligature IJ
 compose.item["fs"] := "{u+017f}"  ; (ſ) small letter long s
 compose.item["ij"] := "{u+0133}"  ; (ij) ligature ij
 compose.item["IJ"] := "{u+0132}"  ; (IJ) ligature IJ
@@ -968,10 +968,12 @@ compose.item["o*"] := "{u+00b0}"  ; (°) degree sign
 compose.item[".-"] := "{u+00b7}"  ; (·) middle dot
 compose.item[".3"] := "{u+2026}"  ; (…) horizontal ellipsis
 compose.item[".."] := "{u+2026}"  ; (…) horizontal ellipsis
 compose.item[".-"] := "{u+00b7}"  ; (·) middle dot
 compose.item[".3"] := "{u+2026}"  ; (…) horizontal ellipsis
 compose.item[".."] := "{u+2026}"  ; (…) horizontal ellipsis
-compose.item["a-"] := "{u+00aa}"  ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician)
-compose.item["o-"] := "{u+00ba}"  ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician)
+compose.item["a-"] := "{u+00aa}"  ; (ª) feminine ordinal indicator
+compose.item["o-"] := "{u+00ba}"  ; (º) masculine ordinal indicator
 compose.item["!!"] := "{u+00a1}"  ; (¡) inverted exclamation mark
 compose.item["??"] := "{u+00bf}"  ; (¿) inverted question mark
 compose.item["!!"] := "{u+00a1}"  ; (¡) inverted exclamation mark
 compose.item["??"] := "{u+00bf}"  ; (¿) inverted question mark
+compose.item["!?"] := "{u+203d}"  ; (‽) interrobang
+compose.item["?!"] := "{u+2e18}"  ; (⸘) inverted interrobang
 compose.item["oc"] := "{u+00a9}"  ; (©) copyright sign
 compose.item["(c"] := "{u+00a9}"  ; (©) copyright sign
 compose.item["op"] := "{u+2117}"  ; (℗) sound recording copyright
 compose.item["oc"] := "{u+00a9}"  ; (©) copyright sign
 compose.item["(c"] := "{u+00a9}"  ; (©) copyright sign
 compose.item["op"] := "{u+2117}"  ; (℗) sound recording copyright
@@ -996,6 +998,10 @@ compose.item[";w"] := "{u+25e6}"  ; (◦) white bullet
 compose.item[";h"] := "{u+2043}"  ; (⁃) hyphen bullet
 compose.item[";t"] := "{u+2023}"  ; (‣) triangular bullet
 compose.item[";;"] := "{u+2022}"  ; (•) bullet
 compose.item[";h"] := "{u+2043}"  ; (⁃) hyphen bullet
 compose.item[";t"] := "{u+2023}"  ; (‣) triangular bullet
 compose.item[";;"] := "{u+2022}"  ; (•) bullet
+compose.item[":("] := "{u+2639}"  ; (☹) white frowning face
+compose.item[":)"] := "{u+263a}"  ; (☺) white smiling face
+compose.item[";)"] := "{u+263b}"  ; (☻) black smiling face
+compose.item["<3"] := "{u+2665}"  ; (♥) black heart suit
 compose.item["[]"] := "{u+2610}"  ; (☐) ballot box
 compose.item["[v"] := "{u+2611}"  ; (☑) ballot box with check
 compose.item["[y"] := "{u+2611}"  ; (☑) ballot box with check
 compose.item["[]"] := "{u+2610}"  ; (☐) ballot box
 compose.item["[v"] := "{u+2611}"  ; (☑) ballot box with check
 compose.item["[y"] := "{u+2611}"  ; (☑) ballot box with check
@@ -1832,8 +1838,7 @@ compose.item["?U"] := "{u+1ef0}"  ; (Ự) U with horn and dot below
 >!sc056::    ; Right Alt + ISO Key
 <^>!sc029::  ; AltGr + Grave Accent
 <^>!sc056::  ; AltGr + ISO Key
 >!sc056::    ; Right Alt + ISO Key
 <^>!sc029::  ; AltGr + Grave Accent
 <^>!sc056::  ; AltGr + ISO Key
-  keys := InputHook("L2", "{esc}")
-  keys.Start()
-  keys.Wait()
-  Send % compose.item[keys.Input]
+  ih := InputHook("L2", gEndKeys)
+  ih.Start(), ih.Wait()
+  Send % compose.item[ih.Input]
   return
   return